package everyday.nowcoder;
/**
 * @Author: wenjingyuan
 * @Date: 2022/10/19/22:22
 * @Description:NC1大数相加
 */
public class NumNC1 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        //先进行判断一个为空的情况，一个为空，则返回另一个
        //两个都为空里边也包含了
        if(s.length()<=0){
            return t;
        }
        if(t.length()<=0){
            return s;
        }
        //让s成为永远的长的哪一方
        if(s.length()<t.length()){
            String  temp=s;
            s=t;
            t=temp;
        }
        //进位的标志
        int carry=0;
        char[] ant=new char[s.length()];
        for(int i=s.length()-1;i>=0;i--){
            //s最后一位
            int temp=s.charAt(i)-'0'+carry;
            int j=i-(s.length()-t.length());
            //t最后一位
            if(j>=0){
               temp+=t.charAt(j)-'0';
            }
            //进位
            carry=temp/10;
            //留下的数字
            int a=temp%10;
            ant[i]=(char)(a+'0');
        }
        //将ant数组转化成字符串
        String output=String.valueOf(ant);
        //当最后的进位为1
        if(carry==1){
            output='1'+output;
        }
        return  output;
    }
}
